package com.bw.produce.mapper;

import com.bw.produce.domain.Property;
import com.bw.produce.domain.dto.PropertyDTO;
import com.bw.produce.domain.dto.TypeDTO;
import com.bw.produce.domain.vo.PropertyVO;
import com.bw.produce.query.PropertyQueryObject;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author lemon
 * @date 2024/11/15 22:21
 **/
public interface PropertyMapper {
    /**
     * 插入数据
     * @param property 品牌信息
     * @return sql影响条数
     */
    int insert(Property property);

    /**
     * 修改数据
     * @param property 品牌信息
     * @return sql影响条数
     */
    int update(Property property);


    /**
     * 查询当
     * @param propertyId 类型id
     * @return 类型
     */
    PropertyVO selectInfo(Long propertyId);

    /**
     * 通过品牌id删除
     * @param propertyIds 品牌id
     */
    void deleteByIds(@Param("propertyIds") Long[] propertyIds);


    /**
     * 查循分类列表
     * @param queryParams 过滤参数
     * @return 集合
     */
    List<PropertyVO> selectAll(PropertyQueryObject queryParams);

    /**
     * 通过类型id查询对应的属性
     * @param typeId 类型id
     * @return 属性集合
     */
    List<TypeDTO> selectPropertyByTypeId(Integer typeId);


    /**
     * 统计属性数量
     * @param typeId 类型id
     * @return 属性数量
     */
    Integer countAttitudeByType(Integer typeId);


    /**
     * 统计参数数量
     * @param typeId 类型id
     * @return 参数数量
     */
    Integer countPropertyByType(Integer typeId);
}
